package com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.chargePayment.entity.req.SmsWnsChargePaymentRecordReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.SmsWnsChargePlanStudentStatus;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.ChargeItemBatchAddReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.SmsWnsChargePlanStudentStatusExportReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.SmsWnsIdListReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.resp.SmsWnsChargePlanStudentStatusResp;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 * 收费计划学生缴费状态表 服务类
 * </p>
 *
 * @author XYHT
 * @since 2024-02-21
 */
public interface SmsWnsChargePlanStudentStatusService extends IService<SmsWnsChargePlanStudentStatus> {

    ResponseResult getPaymentRecords(Integer pageNum, Integer pageSize, String planId, String categoryId, String categoryDetailId,
                                     String stuName, String orgId, Boolean isPaid);

    Future<ResponseResult> exportPaymentRecords(SmsWnsChargePlanStudentStatusExportReq exportReq, HttpServletResponse response);

    Future<ResponseResult> exportPaymentSumRecords(SmsWnsChargePlanStudentStatusExportReq exportReq, HttpServletResponse response);

    ResponseResult listStuStatus(Integer pageNum, Integer pageSize, String planId, Integer orgId, String searchStr);

    ResponseResult updNeedPayById(SmsWnsChargePlanStudentStatusResp req);

    ResponseResult list(String userId);

    ResponseResult chooseStatus(SmsWnsIdListReq req);

    ResponseResult paymentList(Integer type, String userId);

    Future<ResponseResult> stuStatusExport(SmsWnsChargePlanStudentStatusExportReq exportReq, HttpServletResponse response);

    Future<ResponseResult> batchUpdStuStatus(ChargeItemBatchAddReq batchAddReq, String userId);

    ResponseResult pressForMoney(String userId);

    Future<ResponseResult> allStuStatusExport(HttpServletResponse response);

    ResponseResult listByPlanId(String planId, String userId);

    ResponseResult offlinePayment(SmsWnsChargePaymentRecordReq req, String userId);
}
